/**
 * dart的接口没有interface关键字定义接口 而是普通类或者抽象类都可以作为接口被实现
 * 
 * 使用implements关键字实现
 * 
 * 如果子类继承抽象类 子类就必须实现抽象类里面的所有方法
 * 
 * 如果吧抽象类当做接口 实现的话 子类必须实现抽象类里面所有定义的方法和属性！
 * 
 * 抽象类不能被实例化 只有继承它的子类可以
 * 
 * extends 抽象类 和 implements接口的区别
 * 1.如果要复用抽象类里面的方法 并且要用抽象方法约束自类的话 我们使用extends
 * 2.如果只是把抽象类当做执行的标准的话 我们就用implements实现抽象类
 */

abstract class Db {//接口 抽象类 接口:约定 规范
 String name;
  add();
  save();
  delete();
}
class Mysql implements Db{
  String name;//implements 把抽象类定义为接口 必须要实现抽象类里面的所有属性和接口
  @override
  add() {
    // TODO: implement add
    return null;
  }
  @override
  save() {
    // TODO: implement save
    return null;
  }
  @override
  delete() {
    // TODO: implement delete
    return null;
  }
}